In un linguaggio fortemente tipizzato, l'immutabilità è lo stato fondamentale dei dati, garantendo la sicurezza della memoria e un'esecuzione prevedibile. Mentre le variabili possono essere ombreggiate o rese mutabili, Costanti vanno oltre questo concetto legando un valore a un nome in modo permanente.
1. La rigidità delle Costanti
A differenza delle variabili standard dove Inferenza del tipo permette al compilatore di dedurre il tipo di dato, le costanti richiedono invece esplicitamente un annotazione esplicita del tipo (ad esempio, : u32). Questo garantisce contratti rigorosi all'interno del codice binario.
2. Valutazione in fase di compilazione
Le costanti non sono semplici variabili immutabili; vengono valutate e "inserite" nel codice binario durante la compilazione. Ciò permette al compilatore di eseguire espressioni costanti (come 60 * 60 * 3) prima che il programma venga mai eseguito, ottimizzando le prestazioni.
3. Immutabilità assoluta
Le costanti fungono da "fonte unica di verità". Non possono essere resi mutabili con mut e non possono essere ombreggiate nello stesso ambito, garantendo che i parametri essenziali del programma rimangano intatti durante tutta l'esecuzione.